**Timidity** est un synthétiseur logiciel pour la prise en charge du MIDI.

La commande ''man timidity'' offre une bonne documentation ; le programme y est ainsi décrit :
//TiMidity++ convertit des fichiers MIDI en Wave et joue ces derniers. Les formats MIDI supportés sont : fichiers au Standard MIDI (*.mid), fichier Recomposer (*.rcp, *.r36) et les fichiers Module (*.mod). Les fichiers obtenus après conversions sont formattés, par exemple en RIFF WAVE. TiMidity++ utilise des patch compatibles Gravis Ultrasound ou des Soundfonts (*.sfx, *.sf2) pour générer les données audio digitales à partir des fichiers MIDI. Les données générées par TiMidity++ peuvent être stockées dans un fichier en vue d'un traitement ultérieur, ou jouées en temps réel dans un lecteur audio. Lors d'une lecture en temps réel, TiMitidy++ peut afficher les paroles éventuellement stockées dans les fichiers KAR ou WRD.//


===== Installation =====

Cela fait un peu « jeu de piste », mais le mieux est de suivre la [[http://wiki.ubuntu-fr.org/materiel/midi#synthese_midi_logicielle|page consacrée à la prise en charge du MIDI]] afin d'installer Timidity sur Ubuntu (toutes versions). Des optimisations en terme de sons et de performances y sont par ailleurs proposées.




==== Sous Edgy ====


Si vous avez une carte son avec synthétiseur intégré la manipulation est très simple, allez dans le **gestionnaire de paquets** synaptic et installez **timidity**.

Si vous utilisez XMMS installez aussi **xmms-midi**.

Une fois cela fait vous pourrez lire des midi soit directement avec timidity en ligne de commande : 
<code>timidity <nom_fichier> </code>
ou
<code>timidity <dossier></code>
soit en lisant directement des fichier midi dans XMMS.


===== Utilisation =====

Comme de nombreux logiciels sous linux, Timidity peut être utilisé soit en ligne de commande, soit //via// une interface graphique.
Il marche aussi comme plugin d'entrée pour XMMS.

==== Créer un lanceur ====

Le paquet timidity que vous avez installé ne crée malheureusement pas (encore) de raccourci dans le menu Applications. Pour ce faire, lancer votre éditeur de texte préféré en mode administrateur, (alt+F2, commande « ''gksudo gedit'' », par exemple), ou passez par un terminal en utilisant ''sudo''. Il s'agit de créer le fichier ''/usr/share/applications/timidity.desktop'' et d'y insérer :

<code>
[Desktop Entry]
Encoding=UTF-8
Name=Lecteur MIDI Timidity
Comment=Joue les fichiers audio MIDI
Exec=timidity -ig
Terminal=false
Type=Application
StartupNotify=false
MimeType=audio/midi;
Categories=Application;AudioVideo;
Icon=
#NoDisplay=true
</code>

(Vous aurez noté les paramètres -ig qui lancent l'interface graphique.)

Une fois ce fichier sauvegardé, vous pouvez également définir Timidity comme lecteur par défaut des fichiers midi. Pour ce faire, insérez  :

<code>audio/midi=timidity.desktop</code>

dans le fichier ''/usr/share/applications/defaults.list'' (ou modifier la ligne ''audio/midi='' si elle existe déjà).






===== Timidity en serveur/synthétiseur =====

Il faut lancer timidity de cette manière

<code>
timidity -iA -B2,8 -Os -EFreverb=0&
</code>

avec :

  * timidity - le programme
  * -iA "Launch TiMidity++ as ALSA sequencer client."
  * -B2,8 = buffer
  * -Os = "Output to alsa"
  * -EFreverb=0& "mode" + "Effect" + "Disable MIDI reverb effect control"

\\

Pour un synthé [[:jackd]] (pour [[:rosegarden]] par exemple) :

<code>
timidity -iA -B2,8 -Oj -EFreverb=0
</code>

N'oubliez pas de tuer timidity quand vous l'avez fermé :

<code>
killall timidity
</code>




==== Script ====

Un petit script en bash pour se simplifier la vie :

<code bash>
#!/bin/bash
#script timserver par adam0509

echo "Ce script permet de lancer/arreter facilement timidity en mode serveur"

while [ 1 ]; do

echo -e "\n==== Liste des processus lancé en rapport avec le midi :"

ps -A | grep midi

while [ "$nombre" != "0" ] && [ "$nombre" != "1" ] && [ "$nombre" != "2" ] && [ "$nombre" != "3" ]; do

echo -ne "\n\n==== Que voulez-vous faire ?"

echo -e "\n0) Ne rien faire (Quitter le programme)"
echo "1) Lancer timidity (serveur) en mode ALSA"
echo "2) Lancer timidity (serveur) en mode ALSA avec sortie JACK"
echo "3) Arréter/Tuer timidity"

read nombre

done

if [ "$nombre" = "0" ]; then
	{
	exit 0
	}
fi

if [ "$nombre" = "1" ]; then
	{
	timidity -iA -B2,8 -Os -EFreverb=0&
	}
fi
if [ "$nombre" = "2" ]; then
	{
	timidity -iA -B2,8 -Oj -EFreverb=0
	}
fi
if [ "$nombre" = "3" ]; then
	{
	killall timidity
	}
fi

nombre=4

done
</code>

Recopier le contenu dans un fichier "timserver", rendez-le exécutable et profitez ! Vous pouvez aussi le copier dans /usr/local/bin  :

<code bash>
chmod u+x timserver ## donner la permission d'éxécution
sudo cp timserver /usr/local/bin ## le copier dans le dossier des éxecutables
timserver ## lancer le script
</code>